The Internet group management protocol (IGMP) is used by network hosts to report their multicast group memberships to any neighboring multicast routers. A typical Internet Protocol (IP) over Ethernet multicast domain uses IGMP for multicast enabled switches to build multicast group tables on each of their ports. Within a multicast domain, hosts send multicast packets to join or leave multicast groups. Within a multicast domain, a multicast querier (i.e., a device that sends queries) is elected to periodically broadcast a membership query packet to all hosts in the network at configured time intervals. Upon receiving a membership query packet, hosts respond with one or more multicast report packets to Multicast Group Addresses (MGAs) if using IGMP, Version 2 (IGMPV2) or to Multicast Routers Group Address (MRGA) if using IGMP, Version 3 (IGMPV3).
In IGMPV2, hosts send two types of IGMP messages, report and leave. A host joins a group by sending a report to an MGA. The host responds to a query by sending a report to that MGA. The host leaves the group by sending a leave packet to the MGA. In IGMPV3, hosts send only one type of IGMP message, IGMP report. A host responds to a query, joins a group, or leaves a group by sending reports to an MRGA and setting different fields in the report.
Multicast enabled switches snoop/read multicast packets received on their ports. Upon receiving a multicast packet that includes a request to join an MGA (or MRGA, depending on the IGMP version used), a multicast enabled switch adds the corresponding MGA (or MRGA) with expiry time to the receiving port's multicast group table. Upon receiving a subsequent multicast report packet, a multicast enabled switch refreshes expiry time of the corresponding MGA (or MRGA) in the receiving port's multicast group table. Upon receiving a multicast packet requesting to leave an MGA (or MRGA), a multicast enabled switch removes the corresponding group's address in the receiving port's multicast group table. When a multicast enabled switch receives a multicast packet, the switch forwards the packet only out of those ports whose multicast group table contains the destination address of the multicast group. Typically an Open Systems Interconnection (OSI) model Layer 3 (L3) device, router, or dedicated host performs querier role and an OSI Layer 2 (L2) device or switch performs snooper role.
Therefore, the multicast packets requesting to join create MGAs (or MRGAs) in multicast group tables. Multicast report packets, which are driven by membership query packets, sustain the group addresses in multicast group tables. Expired timers remove MGAs (or MRGAs) from multicast group tables. In the absence of a querier, for instance if no querier is enabled or there is no device with querying capability, membership query packets are not generated. So multicast report packets are not triggered. Therefore MGAs (or MRGAs) in multicast group table expire before a host leaves the group. This means hosts may not receive multicast traffic destined to joined multicast groups even though the host has not left the groups yet.